package com.hhc.service;

import com.hhc.dto.NoticeDTO;
import com.hhc.query.NoticeQuery;
import com.hhc.utils.RestResult;

/**
 * <p>
 *   通知公告服务接口
 * </p>
 * @author pc
 */
public interface NoticeService {

    /**
     * 发布通知公告
     *
     * @param noticeDTO 公告信息
     * @return RestResult
     */
    RestResult<String> publish(NoticeDTO noticeDTO);

    /**
     * 查询通知公告列表
     *
     * @param query 查询参数
     * @return RestResult
     */
    RestResult<Object> list(NoticeQuery query);

    /**
     * 获取通知公告详情
     *
     * @param id 公告ID
     * @return RestResult
     */
    RestResult<Object> detail(Long id);

    /**
     * 更新通知公告
     *
     * @param id 公告ID
     * @param noticeDTO 更新信息
     * @return RestResult
     */
    RestResult<String> update(Long id, NoticeDTO noticeDTO);

    /**
     * 删除通知公告
     *
     * @param id 公告ID
     * @return RestResult
     */
    RestResult<String> delete(Long id);
}